package health.lm.com.mine.util;

import android.app.Activity;
import android.content.Context;
import android.support.v4.app.Fragment;

import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.tools.PictureFileUtils;

import java.util.List;

import health.lm.com.mine.R;

/**
 * Created by Android Studio .
 * 作者：zhong
 * 日期：2018/11/13
 * 邮箱：15206394364@163.com
 * 介绍：
 * 修订：====================
 */
public class PictureSelectorConfig {
    private static volatile PictureSelectorConfig selectorConfig;
    private PictureSelector mPictureSelector;

    private PictureSelectorConfig() {
    }

    public static PictureSelectorConfig getInstance() {
        if (selectorConfig == null) {
            synchronized (PictureSelectorConfig.class) {
                if (selectorConfig == null) {
                    selectorConfig = new PictureSelectorConfig();
                }
            }
        }
        return selectorConfig;
    }

    public void create(Activity activity, List<LocalMedia> list, boolean isCircle) {
        mPictureSelector = PictureSelector.create(activity);
        config(list,1, isCircle);
    }

    public void create(Fragment fragment, List<LocalMedia> list, boolean isCircle) {
        mPictureSelector = PictureSelector.create(fragment);
        config(list,1, isCircle);
    }
    public void create(Activity activity, List<LocalMedia> list, int max, boolean isCircle) {
        mPictureSelector = PictureSelector.create(activity);
        config(list,max, isCircle);
    }


    /**
     * PictureSelector 配置
     *
     * @param list     传入已选图片
     * @param isCircle 是否圆形
     */
    private void config(List<LocalMedia> list,int max, boolean isCircle) {
        // 进入相册 以下是例子：用不到的api可以不写
        mPictureSelector.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                .theme(R.style.picture_theme_style)//主题样式(不设置为默认样式) 也可参考demo values/styles下 例如：R.style.picture.white.style
                .maxSelectNum(max)// 最大图片选择数量 int
                .minSelectNum(1)// 最小选择数量 int
                .imageSpanCount(4)// 每行显示个数 int
                .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                .previewImage(true)// 是否可预览图片 true or false
                .previewVideo(false)// 是否可预览视频 true or false
                .enablePreviewAudio(false) // 是否可播放音频 true or false
                .isCamera(true)// 是否显示拍照按钮 true or false
                .imageFormat(PictureMimeType.PNG)// 拍照保存图片格式后缀,默认jpeg
                .isZoomAnim(true)// 图片列表点击 缩放效果 默认true
                //.setOutputCameraPath("/SJYPath")// 自定义拍照保存路径,可不填
                .enableCrop(false)// 是否裁剪 true or false
                .compress(true)// 是否压缩 true or false
                .withAspectRatio(4, 3)// int 裁剪比例 如16:9 3:2 3:4 1:1 可自定义
                .isGif(false)// 是否显示gif图片 true or false
                .freeStyleCropEnabled(false)// 裁剪框是否可拖拽 true or false
                .circleDimmedLayer(isCircle)// 是否圆形裁剪 true or false
                .openClickSound(false)// 是否开启点击声音 true or false
                .selectionMedia(list)// 是否传入已选图片 List<LocalMedia> list
                .minimumCompressSize(100)// 小于100kb的图片不压缩
                .forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code
    }

    /**
     * 清除缓存
     *
     * @param context context
     */
    public void deleteCache(Context context) {
        PictureFileUtils.deleteCacheDirFile(context);
    }
}
